package com.grab.domain;

import java.io.Serializable;
import java.util.Date;

/**
 * @Title system_area表的实体类
 * @Description 系统地区表
 * @version 1.0
 * @Author System
 * @Date 2019-10-12 11:09:05
 */
public class SystemArea implements Serializable {
    /**
     * @Fields areaId 地区id
     */
    private Integer areaId;

    /**
     * @Fields areaCode 地区编码
     */
    private String areaCode;

    /**
     * @Fields areaName 地区名称
     */
    private String areaName;

    /**
     * @Fields areaFullCode 地区全编码
     */
    private String areaFullCode;

    /**
     * @Fields areaFullName 地区全名称
     */
    private String areaFullName;

    /**
     * @Fields rank 级次
     */
    private Integer rank;

    /**
     * @Fields parentId 父级ID
     */
    private Integer parentId;

    /**
     * @Fields order 排序
     */
    private Integer order;

    /**
     * @Fields areaNameSpell 地区名拼音
     */
    private String areaNameSpell;

    /**
     * @Fields areaNameAcronym 地区名首字母
     */
    private String areaNameAcronym;

    /**
     * @Fields telAreaCode 电话区号
     */
    private String telAreaCode;

    /**
     * @Fields axis AXIS
     */
    private String axis;

    /**
     * @Fields longitude 经度
     */
    private String longitude;

    /**
     * @Fields latitude 纬度
     */
    private String latitude;

    /**
     * @Fields regionCode 区域编码
     */
    private String regionCode;

    /**
     * @Fields regionName 区域名称
     */
    private String regionName;

    /**
     * @Fields isEnd 是否末级节点
     */
    private Integer isEnd;

    /**
     * @Fields isEnabled 是否启用
     */
    private Integer isEnabled;

    /**
     * @Fields effectiveStartDate 有效期起始日期
     */
    private Date effectiveStartDate;

    /**
     * @Fields effectiveEndDate 有效期终止日期
     */
    private Date effectiveEndDate;

    /**
     * @Fields creationDate 创建时间
     */
    private Date creationDate;

    /**
     * @Fields lastUpdateDate 最后更新时间
     */
    private Date lastUpdateDate;

    /**
     * @Fields remarks 备注
     */
    private String remarks;

    /**
     * @Fields description 描述：开发使用
     */
    private String description;

    private Integer isUserCenter;

    private static final long serialVersionUID = 1L;

    /**
     * 获取 地区id 字段:system_area.area_id
     *
     * @return system_area.area_id, 地区id
     */
    public Integer getAreaId() {
        return areaId;
    }

    /**
     * 设置 地区id 字段:system_area.area_id
     *
     * @param areaId the value for system_area.area_id, 地区id
     */
    public void setAreaId(Integer areaId) {
        this.areaId = areaId;
    }

    /**
     * 获取 地区编码 字段:system_area.area_code
     *
     * @return system_area.area_code, 地区编码
     */
    public String getAreaCode() {
        return areaCode;
    }

    /**
     * 设置 地区编码 字段:system_area.area_code
     *
     * @param areaCode the value for system_area.area_code, 地区编码
     */
    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode == null ? null : areaCode.trim();
    }

    /**
     * 获取 地区名称 字段:system_area.area_name
     *
     * @return system_area.area_name, 地区名称
     */
    public String getAreaName() {
        return areaName;
    }

    /**
     * 设置 地区名称 字段:system_area.area_name
     *
     * @param areaName the value for system_area.area_name, 地区名称
     */
    public void setAreaName(String areaName) {
        this.areaName = areaName == null ? null : areaName.trim();
    }

    /**
     * 获取 地区全编码 字段:system_area.area_full_code
     *
     * @return system_area.area_full_code, 地区全编码
     */
    public String getAreaFullCode() {
        return areaFullCode;
    }

    /**
     * 设置 地区全编码 字段:system_area.area_full_code
     *
     * @param areaFullCode the value for system_area.area_full_code, 地区全编码
     */
    public void setAreaFullCode(String areaFullCode) {
        this.areaFullCode = areaFullCode == null ? null : areaFullCode.trim();
    }

    /**
     * 获取 地区全名称 字段:system_area.area_full_name
     *
     * @return system_area.area_full_name, 地区全名称
     */
    public String getAreaFullName() {
        return areaFullName;
    }

    /**
     * 设置 地区全名称 字段:system_area.area_full_name
     *
     * @param areaFullName the value for system_area.area_full_name, 地区全名称
     */
    public void setAreaFullName(String areaFullName) {
        this.areaFullName = areaFullName == null ? null : areaFullName.trim();
    }

    /**
     * 获取 级次 字段:system_area.rank
     *
     * @return system_area.rank, 级次
     */
    public Integer getRank() {
        return rank;
    }

    /**
     * 设置 级次 字段:system_area.rank
     *
     * @param rank the value for system_area.rank, 级次
     */
    public void setRank(Integer rank) {
        this.rank = rank;
    }

    /**
     * 获取 父级ID 字段:system_area.parent_id
     *
     * @return system_area.parent_id, 父级ID
     */
    public Integer getParentId() {
        return parentId;
    }

    /**
     * 设置 父级ID 字段:system_area.parent_id
     *
     * @param parentId the value for system_area.parent_id, 父级ID
     */
    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    /**
     * 获取 排序 字段:system_area.order
     *
     * @return system_area.order, 排序
     */
    public Integer getOrder() {
        return order;
    }

    /**
     * 设置 排序 字段:system_area.order
     *
     * @param order the value for system_area.order, 排序
     */
    public void setOrder(Integer order) {
        this.order = order;
    }

    /**
     * 获取 地区名拼音 字段:system_area.area_name_spell
     *
     * @return system_area.area_name_spell, 地区名拼音
     */
    public String getAreaNameSpell() {
        return areaNameSpell;
    }

    /**
     * 设置 地区名拼音 字段:system_area.area_name_spell
     *
     * @param areaNameSpell the value for system_area.area_name_spell, 地区名拼音
     */
    public void setAreaNameSpell(String areaNameSpell) {
        this.areaNameSpell = areaNameSpell == null ? null : areaNameSpell.trim();
    }

    /**
     * 获取 地区名首字母 字段:system_area.area_name_acronym
     *
     * @return system_area.area_name_acronym, 地区名首字母
     */
    public String getAreaNameAcronym() {
        return areaNameAcronym;
    }

    /**
     * 设置 地区名首字母 字段:system_area.area_name_acronym
     *
     * @param areaNameAcronym the value for system_area.area_name_acronym, 地区名首字母
     */
    public void setAreaNameAcronym(String areaNameAcronym) {
        this.areaNameAcronym = areaNameAcronym == null ? null : areaNameAcronym.trim();
    }

    /**
     * 获取 电话区号 字段:system_area.tel_area_code
     *
     * @return system_area.tel_area_code, 电话区号
     */
    public String getTelAreaCode() {
        return telAreaCode;
    }

    /**
     * 设置 电话区号 字段:system_area.tel_area_code
     *
     * @param telAreaCode the value for system_area.tel_area_code, 电话区号
     */
    public void setTelAreaCode(String telAreaCode) {
        this.telAreaCode = telAreaCode == null ? null : telAreaCode.trim();
    }

    /**
     * 获取 AXIS 字段:system_area.axis
     *
     * @return system_area.axis, AXIS
     */
    public String getAxis() {
        return axis;
    }

    /**
     * 设置 AXIS 字段:system_area.axis
     *
     * @param axis the value for system_area.axis, AXIS
     */
    public void setAxis(String axis) {
        this.axis = axis == null ? null : axis.trim();
    }

    /**
     * 获取 经度 字段:system_area.longitude
     *
     * @return system_area.longitude, 经度
     */
    public String getLongitude() {
        return longitude;
    }

    /**
     * 设置 经度 字段:system_area.longitude
     *
     * @param longitude the value for system_area.longitude, 经度
     */
    public void setLongitude(String longitude) {
        this.longitude = longitude == null ? null : longitude.trim();
    }

    /**
     * 获取 纬度 字段:system_area.latitude
     *
     * @return system_area.latitude, 纬度
     */
    public String getLatitude() {
        return latitude;
    }

    /**
     * 设置 纬度 字段:system_area.latitude
     *
     * @param latitude the value for system_area.latitude, 纬度
     */
    public void setLatitude(String latitude) {
        this.latitude = latitude == null ? null : latitude.trim();
    }

    /**
     * 获取 区域编码 字段:system_area.region_code
     *
     * @return system_area.region_code, 区域编码
     */
    public String getRegionCode() {
        return regionCode;
    }

    /**
     * 设置 区域编码 字段:system_area.region_code
     *
     * @param regionCode the value for system_area.region_code, 区域编码
     */
    public void setRegionCode(String regionCode) {
        this.regionCode = regionCode == null ? null : regionCode.trim();
    }

    /**
     * 获取 区域名称 字段:system_area.region_name
     *
     * @return system_area.region_name, 区域名称
     */
    public String getRegionName() {
        return regionName;
    }

    /**
     * 设置 区域名称 字段:system_area.region_name
     *
     * @param regionName the value for system_area.region_name, 区域名称
     */
    public void setRegionName(String regionName) {
        this.regionName = regionName == null ? null : regionName.trim();
    }

    /**
     * 获取 是否末级节点 字段:system_area.is_end
     *
     * @return system_area.is_end, 是否末级节点
     */
    public Integer getIsEnd() {
        return isEnd;
    }

    /**
     * 设置 是否末级节点 字段:system_area.is_end
     *
     * @param isEnd the value for system_area.is_end, 是否末级节点
     */
    public void setIsEnd(Integer isEnd) {
        this.isEnd = isEnd;
    }

    /**
     * 获取 是否启用 字段:system_area.is_enabled
     *
     * @return system_area.is_enabled, 是否启用
     */
    public Integer getIsEnabled() {
        return isEnabled;
    }

    /**
     * 设置 是否启用 字段:system_area.is_enabled
     *
     * @param isEnabled the value for system_area.is_enabled, 是否启用
     */
    public void setIsEnabled(Integer isEnabled) {
        this.isEnabled = isEnabled;
    }

    /**
     * 获取 有效期起始日期 字段:system_area.effective_start_date
     *
     * @return system_area.effective_start_date, 有效期起始日期
     */
    public Date getEffectiveStartDate() {
        return effectiveStartDate;
    }

    /**
     * 设置 有效期起始日期 字段:system_area.effective_start_date
     *
     * @param effectiveStartDate the value for system_area.effective_start_date, 有效期起始日期
     */
    public void setEffectiveStartDate(Date effectiveStartDate) {
        this.effectiveStartDate = effectiveStartDate;
    }

    /**
     * 获取 有效期终止日期 字段:system_area.effective_end_date
     *
     * @return system_area.effective_end_date, 有效期终止日期
     */
    public Date getEffectiveEndDate() {
        return effectiveEndDate;
    }

    /**
     * 设置 有效期终止日期 字段:system_area.effective_end_date
     *
     * @param effectiveEndDate the value for system_area.effective_end_date, 有效期终止日期
     */
    public void setEffectiveEndDate(Date effectiveEndDate) {
        this.effectiveEndDate = effectiveEndDate;
    }

    /**
     * 获取 创建时间 字段:system_area.creation_date
     *
     * @return system_area.creation_date, 创建时间
     */
    public Date getCreationDate() {
        return creationDate;
    }

    /**
     * 设置 创建时间 字段:system_area.creation_date
     *
     * @param creationDate the value for system_area.creation_date, 创建时间
     */
    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    /**
     * 获取 最后更新时间 字段:system_area.last_update_date
     *
     * @return system_area.last_update_date, 最后更新时间
     */
    public Date getLastUpdateDate() {
        return lastUpdateDate;
    }

    /**
     * 设置 最后更新时间 字段:system_area.last_update_date
     *
     * @param lastUpdateDate the value for system_area.last_update_date, 最后更新时间
     */
    public void setLastUpdateDate(Date lastUpdateDate) {
        this.lastUpdateDate = lastUpdateDate;
    }

    /**
     * 获取 备注 字段:system_area.remarks
     *
     * @return system_area.remarks, 备注
     */
    public String getRemarks() {
        return remarks;
    }

    /**
     * 设置 备注 字段:system_area.remarks
     *
     * @param remarks the value for system_area.remarks, 备注
     */
    public void setRemarks(String remarks) {
        this.remarks = remarks == null ? null : remarks.trim();
    }

    /**
     * 获取 描述：开发使用 字段:system_area.description
     *
     * @return system_area.description, 描述：开发使用
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置 描述：开发使用 字段:system_area.description
     *
     * @param description the value for system_area.description, 描述：开发使用
     */
    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }

    public Integer getIsUserCenter() {
        return isUserCenter;
    }

    public void setIsUserCenter(Integer isUserCenter) {
        this.isUserCenter = isUserCenter;
    }

    /**
     * :system_area
     * @return String
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", areaId=").append(areaId);
        sb.append(", areaCode=").append(areaCode);
        sb.append(", areaName=").append(areaName);
        sb.append(", areaFullCode=").append(areaFullCode);
        sb.append(", areaFullName=").append(areaFullName);
        sb.append(", rank=").append(rank);
        sb.append(", parentId=").append(parentId);
        sb.append(", order=").append(order);
        sb.append(", areaNameSpell=").append(areaNameSpell);
        sb.append(", areaNameAcronym=").append(areaNameAcronym);
        sb.append(", telAreaCode=").append(telAreaCode);
        sb.append(", axis=").append(axis);
        sb.append(", longitude=").append(longitude);
        sb.append(", latitude=").append(latitude);
        sb.append(", regionCode=").append(regionCode);
        sb.append(", regionName=").append(regionName);
        sb.append(", isEnd=").append(isEnd);
        sb.append(", isEnabled=").append(isEnabled);
        sb.append(", effectiveStartDate=").append(effectiveStartDate);
        sb.append(", effectiveEndDate=").append(effectiveEndDate);
        sb.append(", creationDate=").append(creationDate);
        sb.append(", lastUpdateDate=").append(lastUpdateDate);
        sb.append(", remarks=").append(remarks);
        sb.append(", description=").append(description);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

    /**
     * :system_area
     * @param that
     * @return boolean
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SystemArea other = (SystemArea) that;
        return (this.getAreaId() == null ? other.getAreaId() == null : this.getAreaId().equals(other.getAreaId()))
            && (this.getAreaCode() == null ? other.getAreaCode() == null : this.getAreaCode().equals(other.getAreaCode()))
            && (this.getAreaName() == null ? other.getAreaName() == null : this.getAreaName().equals(other.getAreaName()))
            && (this.getAreaFullCode() == null ? other.getAreaFullCode() == null : this.getAreaFullCode().equals(other.getAreaFullCode()))
            && (this.getAreaFullName() == null ? other.getAreaFullName() == null : this.getAreaFullName().equals(other.getAreaFullName()))
            && (this.getRank() == null ? other.getRank() == null : this.getRank().equals(other.getRank()))
            && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId()))
            && (this.getOrder() == null ? other.getOrder() == null : this.getOrder().equals(other.getOrder()))
            && (this.getAreaNameSpell() == null ? other.getAreaNameSpell() == null : this.getAreaNameSpell().equals(other.getAreaNameSpell()))
            && (this.getAreaNameAcronym() == null ? other.getAreaNameAcronym() == null : this.getAreaNameAcronym().equals(other.getAreaNameAcronym()))
            && (this.getTelAreaCode() == null ? other.getTelAreaCode() == null : this.getTelAreaCode().equals(other.getTelAreaCode()))
            && (this.getAxis() == null ? other.getAxis() == null : this.getAxis().equals(other.getAxis()))
            && (this.getLongitude() == null ? other.getLongitude() == null : this.getLongitude().equals(other.getLongitude()))
            && (this.getLatitude() == null ? other.getLatitude() == null : this.getLatitude().equals(other.getLatitude()))
            && (this.getRegionCode() == null ? other.getRegionCode() == null : this.getRegionCode().equals(other.getRegionCode()))
            && (this.getRegionName() == null ? other.getRegionName() == null : this.getRegionName().equals(other.getRegionName()))
            && (this.getIsEnd() == null ? other.getIsEnd() == null : this.getIsEnd().equals(other.getIsEnd()))
            && (this.getIsEnabled() == null ? other.getIsEnabled() == null : this.getIsEnabled().equals(other.getIsEnabled()))
            && (this.getEffectiveStartDate() == null ? other.getEffectiveStartDate() == null : this.getEffectiveStartDate().equals(other.getEffectiveStartDate()))
            && (this.getEffectiveEndDate() == null ? other.getEffectiveEndDate() == null : this.getEffectiveEndDate().equals(other.getEffectiveEndDate()))
            && (this.getCreationDate() == null ? other.getCreationDate() == null : this.getCreationDate().equals(other.getCreationDate()))
            && (this.getLastUpdateDate() == null ? other.getLastUpdateDate() == null : this.getLastUpdateDate().equals(other.getLastUpdateDate()))
            && (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks()))
            && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()));
    }

    /**
     * :system_area
     * @return int
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getAreaId() == null) ? 0 : getAreaId().hashCode());
        result = prime * result + ((getAreaCode() == null) ? 0 : getAreaCode().hashCode());
        result = prime * result + ((getAreaName() == null) ? 0 : getAreaName().hashCode());
        result = prime * result + ((getAreaFullCode() == null) ? 0 : getAreaFullCode().hashCode());
        result = prime * result + ((getAreaFullName() == null) ? 0 : getAreaFullName().hashCode());
        result = prime * result + ((getRank() == null) ? 0 : getRank().hashCode());
        result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode());
        result = prime * result + ((getOrder() == null) ? 0 : getOrder().hashCode());
        result = prime * result + ((getAreaNameSpell() == null) ? 0 : getAreaNameSpell().hashCode());
        result = prime * result + ((getAreaNameAcronym() == null) ? 0 : getAreaNameAcronym().hashCode());
        result = prime * result + ((getTelAreaCode() == null) ? 0 : getTelAreaCode().hashCode());
        result = prime * result + ((getAxis() == null) ? 0 : getAxis().hashCode());
        result = prime * result + ((getLongitude() == null) ? 0 : getLongitude().hashCode());
        result = prime * result + ((getLatitude() == null) ? 0 : getLatitude().hashCode());
        result = prime * result + ((getRegionCode() == null) ? 0 : getRegionCode().hashCode());
        result = prime * result + ((getRegionName() == null) ? 0 : getRegionName().hashCode());
        result = prime * result + ((getIsEnd() == null) ? 0 : getIsEnd().hashCode());
        result = prime * result + ((getIsEnabled() == null) ? 0 : getIsEnabled().hashCode());
        result = prime * result + ((getEffectiveStartDate() == null) ? 0 : getEffectiveStartDate().hashCode());
        result = prime * result + ((getEffectiveEndDate() == null) ? 0 : getEffectiveEndDate().hashCode());
        result = prime * result + ((getCreationDate() == null) ? 0 : getCreationDate().hashCode());
        result = prime * result + ((getLastUpdateDate() == null) ? 0 : getLastUpdateDate().hashCode());
        result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode());
        result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
        return result;
    }
}